package com.xxx.util;

import java.util.Arrays;

import org.apache.commons.lang3.StringUtils;

import freemarker.template.utility.StringUtil;

/**
 * 数字相关工具类
 */
public class NumberUtil {
	
	private NumberUtil(){
		
	}

	/**  
     * 随机指定范围内N个不重复的数  
     * 最简单最基本的方法  
     * @param min 指定范围最小值  
     * @param max 指定范围最大值  
     * @param n 随机数个数  
     * @param isOrder 是否需要排序
     */    
    public static int[] getRandomNumber(int min, int max, int n, boolean isOrder){    
        if (n > (max - min + 1) || max < min) {    
               return null;    
        }    
        int[] result = new int[n];    
        int count = 0;    
        while(count < n) {    
            int num = (int) (Math.random() * (max - min)) + min;    
            boolean flag = true;    
            for (int j = 0; j < n; j++) {    
                if(num == result[j]){    
                    flag = false;    
                    break;    
                }    
            }    
            if(flag){    
                result[count] = num;    
                count++;    
            }    
        }
        
        if(isOrder) {
        	Arrays.sort(result);
        }
        return result;    
    }
    
    /**
     * 左补齐字符串
     * @param srcStr 原始字符串
     * @param totalLen 补位后的字符串长度
     * @return
     */
    public static String leftPadZero(String srcStr, int totalLen){
    	String result = srcStr;
    	if(StringUtils.isEmpty(srcStr)) {
    		return result;
    	}
    	
    	if(srcStr.length() < totalLen) {
    		result = StringUtil.leftPad(srcStr, totalLen, "0");
    	}
    	
    	return result;
    }
    
    /**
     * 左去掉字符串0
     * @param srcStr 原始字符串
     * @return
     */
    public static String removeLeftZero(String srcStr){
    	String result = srcStr;
    	if(StringUtils.isEmpty(srcStr)) {
    		return result;
    	}
    	
    	return result.replaceFirst("^0*", "");
    }
    
}
